<?php

declare(strict_types=1);
// 商品档案
namespace app\net2023dev\controller;


use think\facade\Db; //门面模式
use app\net2023dev\model\Goods as mysql; //导入模型

class Goods
{
    public function index()
    {
        return time();
    }
    // 商品档案自动编号生成
    public function GoodsAutoNumber()
    {
        $time_int = time();
        $time = date('Y-m-d H:i:s', $time_int);
        // 模型查询返回数据集对象
        $list = mysql::where([['id', '>', 0], ['unit_pack', '=', 'B']])->select();
        // (count($list) + 1)
        $apidb = [
            'code' => 200, //状态码
            'msg' => '获取商品档案自动编号', //状态信息
            'time' => $time,
            'time_int' => time(),
            'count' => str_pad((string) (count($list) + 1), 6, "0", STR_PAD_LEFT), //获取数据集的数量
        ];
        return (json($apidb));
    }
    // 辅助条码-新增
    public function barcodenew()
    {

        $query = request()->param(); //请求参数
        // 1.查商品档案确定有对应商品-
        // 2.查辅助条码表确定要增加的条码是否已存在-
        $goods_dbid = null;
        $goods_dbid = mysql::where([['dbid', '=', $query['goods_dbid']]])->find(); //查商品档案是否有对应商品
        if ($goods_dbid) {
            # 商品档案存在-接着查辅助条码
            $barcode_db = Db::table('ai_t_goods_barcode')->where([
                ['goods_dbid', '=', $query['goods_dbid']],
                ['barcode', '=', $query['barcode']]
            ])->find();
            if ($barcode_db == null) {
                # 辅助条码不存在-进行新增
                $insert_data = [
                    'barcode' => $query['barcode'], //辅助条码
                    'goods_dbid' => $query['goods_dbid'], //商品数据编号
                    'db_state' => 'C' //数据状态_A正常B停用C只读D回收站E删除
                ];
                $insert_db = Db::name('ai_t_goods_barcode')->strict(false)->insert($insert_data); //辅助条码表-新建
                if ($insert_db > 0) {
                    $msg = '新增辅助条码成功!';
                    $code = 200;
                } else {
                    $msg = '新增辅助条码失败!';
                    $code = 203;
                }
            } else {

                // if ($goods_dbid['db_state'] == 'A') {
                //     //数据状态_A正常B停用C只读D回收站E删除
                //     Db::name('ai_t_goods_barcode')
                //         ->where([
                //             ['barcode' => $query['barcode']],
                //             ['goods_dbid' => $query['goods_dbid']]
                //         ])
                //         ->update(['barcode' => $query['barcode']]);
                //     $msg = '对应辅助条码已更新!';
                //     $code = 200;
                // } else {
                //     $msg = '对应辅助条码已存在!';
                //     $code = 202;
                // }
                $msg = '对应辅助条码已存在!';
                $code = 202;
            }
        } else {
            $msg = '对应商品不存在!' . $query['goods_dbid'];
            $code = 201;
        }

        $apidb = [
            'code' => $code, //状态码
            'msg' => $msg, //状态信息
            'query' => $query, //请求参数
            // 'db_old' => $original_sqldb,
            // 'db_now' => $sqldb->toArray(),
            // 'unit_tab' => $query['unit_tab'],

        ];
        return (json($apidb));
    }
    // 新增
    public function new()
    {
        $query = request()->param(); //请求参数
        $time_int = time();
        $time = date('Y-m-d H:i:s', $time_int);

        $dbid = 'DID-' . com_guid()["salt_any"];
        $sqldb = mysql::create(
            [
                'dbid' => $dbid, //数据编号.唯一
                'name' => (isset ($query['name']) && !empty ($query['name'])) ? $query['name'] : "未命名商品", //名称
                'cls_id' => (isset ($query['cls_id']) && !empty ($query['cls_id'])) ? $query['cls_id'] : 1, //商品分类id
                'state' => (isset ($query['state']) && !empty ($query['state'])) ? $query['state'] : "A", //商品状态_A正常B停用C只销
                'sup_dbid' => (isset ($query['sup_dbid']) && !empty ($query['sup_dbid'])) ? $query['sup_dbid'] : "SUP-SYS", //主供货商数据编号-默认SUP-SYS

                'auto_number' => (isset ($query['auto_number']) && !empty ($query['auto_number'])) ? $query['auto_number'] : null, //自动编号

                'unit_goods_dbid' => $dbid, //大单位商品数据编号(基本单位等于自己)
                'unit_pack' => 'B', //是否大单位_A是B否
                'barcode' => $query['barcode'], //主条码
                'unit' => $query['unit'], //单位
                'unit_factor' => 1, //内装量
                'off_putaway_web' => (isset ($query['off_putaway_web']) && !empty ($query['off_putaway_web'])) ? (int) $query['off_putaway_web'] : 1, //上架商城
                'prc_in' => (isset ($query['prc_in']) && !empty ($query['prc_in'])) ? $query['prc_in'] : 1.00, //进价
                'prc_cust' => (isset ($query['prc_cust']) && !empty ($query['prc_cust'])) ? $query['prc_cust'] : 2.00, //批发价
                'prc_vip' => (isset ($query['prc_vip']) && !empty ($query['prc_vip'])) ? $query['prc_vip'] : 3.00, //会员价
                'prc_sale' => (isset ($query['prc_sale']) && !empty ($query['prc_sale'])) ? $query['prc_sale'] : 4.00, //零售价
                'prc_web' => (isset ($query['prc_web']) && !empty ($query['prc_web'])) ? $query['prc_web'] : 5.00, //商城价
                'prc_groupon' => (isset ($query['prc_groupon']) && !empty ($query['prc_groupon'])) ? $query['prc_groupon'] : 6.00, //团购价
                'prc_dist' => (isset ($query['prc_dist']) && !empty ($query['prc_dist'])) ? $query['prc_dist'] : 7.00, //配送价
                'prc_same' => (isset ($query['prc_same']) && !empty ($query['prc_same'])) ? $query['prc_same'] : 8.00, //同行价

                'time_new' => $time_int, //创建时间
                'time_up' => $time_int, //修改时间
                'i' => 999, //排序
            ],
            // 许可写入的字段
            [
                'dbid', //数据编号.唯一
                'unit_goods_dbid', //大单位商品数据编号(基本单位等于自己)
                'auto_number', //自动编号
                'unit_pack', //是否大单位_A是B否
                'barcode', //主条码
                'unit', //单位
                'unit_factor', //内装量
                'unit_size', //包装规格
                'name', //名称
                'off_putaway_web', //上架商城
                'prc_in', //进价
                'prc_cust', //批发价
                'prc_vip', //会员价
                'prc_sale', //零售价
                'prc_web', //商城价
                'prc_groupon', //团购价
                'prc_dist', //配送价
                'prc_same', //同行价


                'time_new', //创建时间
                'time_up', //修改时间
                'i', //排序
            ]
        );




        $apidb = [
            'code' => 200, //状态码
            'msg' => '新增成功', //状态信息
            'query' => $query, //请求参数
            'data_now' => $sqldb->toArray(),
            'data' => ['id' => $sqldb->id],
        ];
        return (json($apidb));
    }
    // 修改
    public function up()
    {
        $time_int = time();
        $time = date('Y-m-d H:i:s', $time_int);
        $query = request()->param(); //请求参数
        $sqldb = mysql::where([
            ['id', '=', $query['id']],
        ])->find();
        if ($sqldb) {
            for ($i = 0; $i < count($query['unit_tab']); $i++) {
                // 根据前端提交的大单位数据包，查是否存在数据库，存在进行修改，不存在进行新增
                if ($query['unit_tab'][$i]['unit_pack'] == "A") {

                    $sql_find_db = mysql::where([
                        ['dbid', '=', $query['unit_tab'][$i]['dbid']],
                        ['unit_goods_dbid', '=', $query['dbid']],
                        ['unit_pack', '=', 'A'],
                    ])->findOrEmpty();
                    // 数据集为空--大单位-不存在进行新增
                    if ($sql_find_db->isEmpty()) {
                        // 新建多单位包装
                        $sql_new = mysql::create(
                            [
                                'dbid' => 'DID-' . com_guid()["salt_any"], //数据编号.唯一
                                'unit_goods_dbid' => (isset ($query['dbid']) && !empty ($query['dbid'])) ? $query['dbid'] : "null", //大单位商品数据编号(基本单位等于自己)
                                'unit_pack' => 'A', //是否大单位_A是B否
                                'barcode' => $query['unit_tab'][$i]['barcode'], //主条码
                                'unit' => $query['unit_tab'][$i]['unit'], //单位
                                'unit_factor' => $query['unit_tab'][$i]['unit_factor'], //内装量
                                'unit_size' => $query['unit_tab'][$i]['unit_size'], //包装规格
                                'name' => (isset ($query['unit_tab'][$i]['name']) && !empty ($query['unit_tab'][$i]['name'])) ? $query['unit_tab'][$i]['name'] : "未命名商品ss", //名称
                                'off_putaway_web' => (isset ($query['unit_tab'][$i]['off_putaway_web']) && !empty ($query['unit_tab'][$i]['off_putaway_web'])) ? (int) $query['unit_tab'][$i]['off_putaway_web'] : 1, //上架商城
                                'prc_in' => (isset ($query['unit_tab'][$i]['prc_in']) && !empty ($query['unit_tab'][$i]['prc_in'])) ? $query['unit_tab'][$i]['prc_in'] : 1.00, //进价
                                'prc_cust' => (isset ($query['unit_tab'][$i]['prc_cust']) && !empty ($query['unit_tab'][$i]['prc_cust'])) ? $query['unit_tab'][$i]['prc_cust'] : 2.00, //批发价
                                'prc_vip' => (isset ($query['unit_tab'][$i]['prc_vip']) && !empty ($query['unit_tab'][$i]['prc_vip'])) ? $query['unit_tab'][$i]['prc_vip'] : 3.00, //会员价
                                'prc_sale' => (isset ($query['unit_tab'][$i]['prc_sale']) && !empty ($query['unit_tab'][$i]['prc_sale'])) ? $query['unit_tab'][$i]['prc_sale'] : 4.00, //零售价
                                'prc_web' => (isset ($query['unit_tab'][$i]['prc_web']) && !empty ($query['unit_tab'][$i]['prc_web'])) ? $query['unit_tab'][$i]['prc_web'] : 5.00, //商城价
                                'prc_groupon' => (isset ($query['unit_tab'][$i]['prc_groupon']) && !empty ($query['unit_tab'][$i]['prc_groupon'])) ? $query['unit_tab'][$i]['prc_groupon'] : 6.00, //团购价
                                'prc_dist' => (isset ($query['unit_tab'][$i]['prc_dist']) && !empty ($query['unit_tab'][$i]['prc_dist'])) ? $query['unit_tab'][$i]['prc_dist'] : 7.00, //配送价
                                'prc_same' => (isset ($query['unit_tab'][$i]['prc_same']) && !empty ($query['unit_tab'][$i]['prc_same'])) ? $query['unit_tab'][$i]['prc_same'] : 8.00, //同行价

                                'time_new' => $time_int, //创建时间
                                'time_up' => $time_int, //修改时间
                                'i' => 999, //排序
                            ],
                            // 许可写入的字段
                            [
                                'dbid', //数据编号.唯一
                                'unit_goods_dbid', //大单位商品数据编号(基本单位等于自己)
                                'unit_pack', //是否大单位_A是B否
                                'barcode', //主条码
                                'unit', //单位
                                'unit_factor', //内装量
                                'unit_size', //包装规格
                                'name', //名称
                                'off_putaway_web', //上架商城
                                'prc_in', //进价
                                'prc_cust', //批发价
                                'prc_vip', //会员价
                                'prc_sale', //零售价
                                'prc_web', //商城价
                                'prc_groupon', //团购价
                                'prc_dist', //配送价
                                'prc_same', //同行价


                                'time_new', //创建时间
                                'time_up', //修改时间
                                'i', //排序
                            ]
                        );
                    } else {


                        // 大单位-存在进行修改
                        $sql_find_db->barcode = (isset ($query['unit_tab'][$i]['barcode']) && !empty ($query['unit_tab'][$i]['barcode'])) ? $query['unit_tab'][$i]['barcode'] : "主条码"; //主条码
                        $sql_find_db->name = (isset ($query['unit_tab'][$i]['name']) && !empty ($query['unit_tab'][$i]['name'])) ? $query['unit_tab'][$i]['name'] : "未命名商品"; //名称
                        $sql_find_db->unit = (isset ($query['unit_tab'][$i]['unit']) && !empty ($query['unit_tab'][$i]['unit'])) ? $query['unit_tab'][$i]['unit'] : "单位"; //单位
                        $sql_find_db->unit_factor = (isset ($query['unit_tab'][$i]['unit_factor']) && !empty ($query['unit_tab'][$i]['unit_factor'])) ? $query['unit_tab'][$i]['unit_factor'] : "内装量"; //内装量
                        $sql_find_db->unit_size = (isset ($query['unit_tab'][$i]['unit_size']) && !empty ($query['unit_tab'][$i]['unit_size'])) ? $query['unit_tab'][$i]['unit_size'] : "包装规格"; //包装规格

                        $sql_find_db->off_putaway_web = (isset ($query['unit_tab'][$i]['off_putaway_web']) && !empty ($query['unit_tab'][$i]['off_putaway_web'])) ? (int) $query['unit_tab'][$i]['off_putaway_web'] : 0; //上架商城

                        $sql_find_db->prc_in = (isset ($query['unit_tab'][$i]['prc_in']) && !empty ($query['unit_tab'][$i]['prc_in'])) ? $query['unit_tab'][$i]['prc_in'] : 0.00; //进价
                        $sql_find_db->prc_cust = (isset ($query['unit_tab'][$i]['prc_cust']) && !empty ($query['unit_tab'][$i]['prc_cust'])) ? $query['unit_tab'][$i]['prc_cust'] : 0.00; //批发价
                        $sql_find_db->prc_vip = (isset ($query['unit_tab'][$i]['prc_vip']) && !empty ($query['unit_tab'][$i]['prc_vip'])) ? $query['unit_tab'][$i]['prc_vip'] : 0.00; //会员价
                        $sql_find_db->prc_sale = (isset ($query['unit_tab'][$i]['prc_sale']) && !empty ($query['unit_tab'][$i]['prc_sale'])) ? $query['unit_tab'][$i]['prc_sale'] : 0.00; //零售价
                        $sql_find_db->prc_web = (isset ($query['unit_tab'][$i]['prc_web']) && !empty ($query['unit_tab'][$i]['prc_web'])) ? $query['unit_tab'][$i]['prc_web'] : 0.00; //商城价
                        $sql_find_db->prc_groupon = (isset ($query['unit_tab'][$i]['prc_groupon']) && !empty ($query['unit_tab'][$i]['prc_groupon'])) ? $query['unit_tab'][$i]['prc_groupon'] : 0.00; //团购价
                        $sql_find_db->prc_dist = (isset ($query['unit_tab'][$i]['prc_dist']) && !empty ($query['unit_tab'][$i]['prc_dist'])) ? $query['unit_tab'][$i]['prc_dist'] : 0.00; //配送价
                        $sql_find_db->prc_same = (isset ($query['unit_tab'][$i]['prc_same']) && !empty ($query['unit_tab'][$i]['prc_same'])) ? $query['unit_tab'][$i]['prc_same'] : 0.00; //同行价

                        $sql_find_db->save();
                    }
                }
                // 基本单位部分
                $sqldb->barcode = (isset ($query['barcode']) && !empty ($query['barcode'])) ? $query['barcode'] : "主条码"; //主条码
                $sqldb->unit = (isset ($query['unit']) && !empty ($query['unit'])) ? $query['unit'] : "单位"; //单位
                $sqldb->unit_size = (isset ($query['unit_size']) && !empty ($query['unit_size'])) ? $query['unit_size'] : "包装规格"; //包装规格
                $sqldb->name = (isset ($query['name']) && !empty ($query['name'])) ? $query['name'] : "未命名商品"; //名称
                $sqldb->cls_id = (isset ($query['cls_id']) && !empty ($query['cls_id'])) ? $query['cls_id'] : 1; //商品分类id
                $sqldb->state = (isset ($query['state']) && !empty ($query['state'])) ? $query['state'] : "A"; //商品状态_A正常B停用C只销
                $sqldb->sup_dbid = (isset ($query['sup_dbid']) && !empty ($query['sup_dbid'])) ? $query['sup_dbid'] : "SUP-SYS"; //主供货商数据编号-默认SUP-SYS

                $sqldb->goods_no = (isset ($query['goods_no']) && !empty ($query['goods_no'])) ? $query['goods_no'] : "货号"; //货号
                $sqldb->serial_number = (isset ($query['serial_number']) && !empty ($query['serial_number'])) ? $query['serial_number'] : "serial_number"; //序列号
                $sqldb->auto_number = (isset ($query['auto_number']) && !empty ($query['auto_number'])) ? $query['auto_number'] : "auto_number"; //自动编号

                $sqldb->auto_number = (isset ($query['auto_number']) && !empty ($query['auto_number'])) ? $query['auto_number'] : "auto_number"; //自动编号
                $sqldb->custom_code = (isset ($query['custom_code']) && !empty ($query['custom_code'])) ? $query['custom_code'] : "custom_code"; //自编码
                $sqldb->gross_margin = (isset ($query['gross_margin']) && !empty ($query['gross_margin'])) ? $query['gross_margin'] : 0.00; //毛利率
                $sqldb->integration = (isset ($query['integration']) && !empty ($query['integration'])) ? $query['integration'] : 0.00; //积分率

                $sqldb->prc_in = (isset ($query['prc_in']) && !empty ($query['prc_in'])) ? $query['prc_in'] : 0.00; //进价
                $sqldb->prc_cust = (isset ($query['prc_cust']) && !empty ($query['prc_cust'])) ? $query['prc_cust'] : 0.00; //批发价
                $sqldb->prc_vip = (isset ($query['prc_vip']) && !empty ($query['prc_vip'])) ? $query['prc_vip'] : 0.00; //会员价
                $sqldb->prc_sale = (isset ($query['prc_sale']) && !empty ($query['prc_sale'])) ? $query['prc_sale'] : 0.00; //零售价
                $sqldb->prc_web = (isset ($query['prc_web']) && !empty ($query['prc_web'])) ? $query['prc_web'] : 0.00; //商城价
                $sqldb->prc_groupon = (isset ($query['prc_groupon']) && !empty ($query['prc_groupon'])) ? $query['prc_groupon'] : 0.00; //团购价
                $sqldb->prc_dist = (isset ($query['prc_dist']) && !empty ($query['prc_dist'])) ? $query['prc_dist'] : 0.00; //配送价
                $sqldb->prc_same = (isset ($query['prc_same']) && !empty ($query['prc_same'])) ? $query['prc_same'] : 0.00; //同行价

                $sqldb->prc_ws = (isset ($query['prc_ws']) && !empty ($query['prc_ws'])) ? $query['prc_ws'] : 0.00; //微商价
                $sqldb->prc_head = (isset ($query['prc_head']) && !empty ($query['prc_head'])) ? $query['prc_head'] : 0.00; //团长价
                $sqldb->prc_transfer_goods = (isset ($query['prc_transfer_goods']) && !empty ($query['prc_transfer_goods'])) ? $query['prc_transfer_goods'] : 0.00; //调货价

                $sqldb->sku_size = (isset ($query['sku_size']) && !empty ($query['sku_size'])) ? $query['sku_size'] : "规格款式"; //规格款式
                $sqldb->goods_size = (isset ($query['goods_size']) && !empty ($query['goods_size'])) ? $query['goods_size'] : "商品规格"; //商品规格
                $sqldb->nature_flag = (isset ($query['nature_flag']) && !empty ($query['nature_flag'])) ? $query['nature_flag'] : "A"; //商品性质_A普通商品B称重商品B计份商品C不定价商品
                $sqldb->group_flag = (isset ($query['group_flag']) && !empty ($query['group_flag'])) ? $query['group_flag'] : "A"; //组合标志_A普通商品B组装商品C拆分商品D自动拆分商品E自动组装商品
                $sqldb->db_state = (isset ($query['db_state']) && !empty ($query['db_state'])) ? $query['db_state'] : "A"; //数据状态_A正常B停用C只读D回收站E删除

                $sqldb->time_up = $time_int; //修改时间
                $sqldb->stock_ceiling = (isset ($query['stock_ceiling']) && !empty ($query['stock_ceiling'])) ? $query['stock_ceiling'] : 0; //库存上限
                $sqldb->stock_lower = (isset ($query['stock_lower']) && !empty ($query['stock_lower'])) ? $query['stock_lower'] : 0; //库存下限
                $sqldb->expiration = (isset ($query['expiration']) && !empty ($query['expiration'])) ? $query['expiration'] : 0.00; //保质期(天)
                $sqldb->name_web = (isset ($query['name_web']) && !empty ($query['name_web'])) ? $query['name_web'] : "商品商城名称"; //商品商城名称
                $sqldb->name_print = (isset ($query['name_print']) && !empty ($query['name_print'])) ? $query['name_print'] : "商品打印名称"; //商品打印名称
                $sqldb->name_py = (isset ($query['name_py']) && !empty ($query['name_py'])) ? $query['name_py'] : "商品名称拼音编码"; //商品名称拼音编码
                $sqldb->deduct = (isset ($query['deduct']) && !empty ($query['deduct'])) ? $query['deduct'] : "A"; //提成方式_A按金额B提成率C按计划
                $sqldb->distribute = (isset ($query['distribute']) && !empty ($query['distribute'])) ? $query['distribute'] : "A"; //经销方式_A购销B代销C联营D自产自销
                $sqldb->encapsulation = (isset ($query['encapsulation']) && !empty ($query['encapsulation'])) ? $query['encapsulation'] : "A"; //封装方式_A未知A2其它B1袋装B2瓶装B3罐装B4盒装B5箱装C1裸装C2散装C3无包装C4临封装D1真空袋D2真空罐D3真空装E1桶装E2筒装E3篮箩筐装E4盘装E5网装E6捆扎装E7穿钩装
                $sqldb->toxicity = (isset ($query['toxicity']) && !empty ($query['toxicity'])) ? $query['toxicity'] : "A"; //毒性_A未知B无毒C剧毒D高毒E中毒F低毒G微毒
                $sqldb->form = (isset ($query['form']) && !empty ($query['form'])) ? $query['form'] : "A"; //形态_A未知B固体C液体D粉状E软体F其它
                $sqldb->brand = (isset ($query['brand']) && !empty ($query['brand'])) ? $query['brand'] : "品牌"; //品牌
                $sqldb->producing_area = (isset ($query['producing_area']) && !empty ($query['producing_area'])) ? $query['producing_area'] : "产地"; //产地
                $sqldb->manufacturers = (isset ($query['manufacturers']) && !empty ($query['manufacturers'])) ? $query['manufacturers'] : "厂家"; //厂家
                $sqldb->product_model = (isset ($query['product_model']) && !empty ($query['product_model'])) ? $query['product_model'] : "型号"; //型号
                $sqldb->taste = (isset ($query['taste']) && !empty ($query['taste'])) ? $query['taste'] : "口味"; //口味
                $sqldb->edition = (isset ($query['edition']) && !empty ($query['edition'])) ? $query['edition'] : "版本"; //版本
                $sqldb->trademark = (isset ($query['trademark']) && !empty ($query['trademark'])) ? $query['trademark'] : "商标"; //商标
                $sqldb->colour = (isset ($query['colour']) && !empty ($query['colour'])) ? $query['colour'] : "颜色"; //颜色
                $sqldb->size = (isset ($query['size']) && !empty ($query['size'])) ? $query['size'] : "尺寸"; //尺寸
                $sqldb->attribute = (isset ($query['attribute']) && !empty ($query['attribute'])) ? $query['attribute'] : "属性"; //属性
                $sqldb->gw = (isset ($query['gw']) && !empty ($query['gw'])) ? $query['gw'] : "毛重"; //毛重
                $sqldb->nw = (isset ($query['nw']) && !empty ($query['nw'])) ? $query['nw'] : "净重"; //净重
                $sqldb->concentration = (isset ($query['concentration']) && !empty ($query['concentration'])) ? $query['concentration'] : "浓度"; //浓度
                $sqldb->volume = (isset ($query['volume']) && !empty ($query['volume'])) ? $query['volume'] : "体积"; //体积
                $sqldb->allergen = (isset ($query['allergen']) && !empty ($query['allergen'])) ? $query['allergen'] : "过敏源"; //过敏源
                $sqldb->taboos = (isset ($query['taboos']) && !empty ($query['taboos'])) ? $query['taboos'] : "禁忌"; //禁忌
                //管理开关类
                $sqldb->off_expiration = (isset ($query['off_expiration']) && !empty ($query['off_expiration'])) ? (int) $query['off_expiration'] : 0; //开关-管保质期_1是0否
                $sqldb->off_stock = (isset ($query['off_stock']) && !empty ($query['off_stock'])) ? (int) $query['off_stock'] : 0; //开关-管理库存_1是0否
                $sqldb->off_deduct = (isset ($query['off_deduct']) && !empty ($query['off_deduct'])) ? (int) $query['off_deduct'] : 0; //开关-开启提成_1是0否
                $sqldb->off_discount = (isset ($query['off_discount']) && !empty ($query['off_discount'])) ? (int) $query['off_discount'] : 0; //开关-可以打折_1是0否
                $sqldb->off_after_sale = (isset ($query['off_after_sale']) && !empty ($query['off_after_sale'])) ? (int) $query['off_after_sale'] : 0; //开关-拥有售后_1是0否
                $sqldb->off_putaway_web = (isset ($query['off_putaway_web']) && !empty ($query['off_putaway_web'])) ? (int) $query['off_putaway_web'] : 0; //开关-上架商城_1是0否
                $sqldb->off_print_label = (isset ($query['off_print_label']) && !empty ($query['off_print_label'])) ? (int) $query['off_print_label'] : 0; //开关-打印标签_1是0否
                $sqldb->off_market_goods = (isset ($query['off_market_goods']) && !empty ($query['off_market_goods'])) ? (int) $query['off_market_goods'] : 0; //开关-专柜商品_1是0否
                $sqldb->off_freebie = (isset ($query['off_freebie']) && !empty ($query['off_freebie'])) ? (int) $query['off_freebie'] : 0; //开关-可为赠品_1是0否
                // $sqldb->xxxxxx = (isset($query['xxxxxx']) && !empty($query['xxxxxx'])) ? $query['xxxxxx'] : "A"; //


                $umsg = $sqldb->save();
            }


            if ($umsg !== false) {
                $msg = '更新成功!';
                $code = 200;
            } else {
                $msg = '更新失败!';
                $code = 201;
            }
        } else {
            $msg = '更新失败-相关商品不存在。';
            $code = 202;
        }
        $apidb = [
            'code' => $code, //状态码
            'msg' => $msg, //状态信息
            'query' => $query, //请求参数
            'unit_tab' => $query['unit_tab'],

        ];
        return (json($apidb));
    }

    // 找到一条
    public function id()
    {
        $query = request()->param(); //请求参数
        $sqldb = mysql::where([
            ['id', '=', $query['id']],
            // ['dbid', '=',  $query['dbid']],
        ])->findOrEmpty();
        //设置需要输出的属性
        $sqldb = $sqldb->visible([
            //     'id', //主键
        ]);
        // 设置需要隐藏的输出属性
        $sqldb = $sqldb->hidden([
            //     'id', //主键

        ]);
        // 设置需要附加的输出属性
        $sqldb = $sqldb->append([
            'unit_tab', //附加字段-多包装单位商品包
            'array_prc', //附加字段-价格集
            'off_array', //附加字段-开关集
        ]);
        // 设置数据字段获取器
        // $sqldb = $sqldb->withAttr('name', function($value, $data) {
        // return strtolower($value);
        // });
        if ($sqldb->isEmpty()) {
            // echo '数据集为空';
            $isEmpty = true;
        } else {
            $isEmpty = false;
        }
        $sqldb = $sqldb->toArray(); //以数组方式返回

        if ($isEmpty) {
            $msg = '查询失败-对应商品不存在!';
            $code = 202;
        } else {
            $msg = '查询成功!';
            $code = 200;

            // 找关联多包装单位的商品
            $sql_unit_tab = mysql::where([
                ['unit_goods_dbid', '=', $sqldb['dbid']],
            ])->append([
                        'barcode_data', //附加字段-辅助条码
                        'array_prc', //附加字段-价格集
                        'off_array', //附加字段-开关集
                    ])->order("unit_pack", "desc")
                ->select()
                ->toArray();


            if ($sql_unit_tab) {
                for ($i = 0; $i < count($sql_unit_tab); $i++) {
                    // $li_db[$i]['apitxtx'] = json_decode($li_db[$i]['apitxt'], true); //格式化插入
                    // unset($li_db[$i]); //删除数组中的元素
                    // ksort($li_db[$i]);//根据关联数组的键，对数组进行升序排列
                    // 辅助条码
                    $sql_unit_tab[$i]["barcode_data"] = Db::table('ai_t_goods_barcode')->where('goods_dbid', $sql_unit_tab[$i]['dbid'])->select();
                    //管理开关类-大单位的包
                    $off_array = [
                        // 'off_expiration' =>$sql_unit_tab[$i]["off_expiration"], //开关-管保质期_1是0否
                        // 'off_stock' =>$sql_unit_tab[$i]["off_stock"], //开关-管理库存_1是0否
                        // 'off_deduct' =>$sql_unit_tab[$i]["off_deduct"], //开关-开启提成_1是0否
                        // 'off_discount' =>$sql_unit_tab[$i]["off_discount"], //开关-可以打折_1是0否
                        // 'off_after_sale' =>$sql_unit_tab[$i]["off_after_sale"], //开关-拥有售后_1是0否
                        'off_putaway_web' => $sql_unit_tab[$i]["off_putaway_web"], //开关-上架商城_1是0否
                        // 'off_print_label' =>$sql_unit_tab[$i]["off_print_label"], //开关-打印标签_1是0否
                        // 'off_market_goods' =>$sql_unit_tab[$i]["off_market_goods"], //开关-专柜商品_1是0否
                        // 'off_freebie' =>$sql_unit_tab[$i]["off_freebie"], //开关-可为赠品_1是0否
                        'off_operation' => $sql_unit_tab[$i]["off_operation"], //开关-产生业务_1是0否
                    ];
                    // unset($li_db[$i]); //删除数组中的元素
                    unset($sql_unit_tab[$i]["off_expiration"]); //开关-管保质期_1是0否
                    unset($sql_unit_tab[$i]["off_stock"]); //开关-管理库存_1是0否
                    unset($sql_unit_tab[$i]["off_deduct"]); //开关-开启提成_1是0否
                    unset($sql_unit_tab[$i]["off_discount"]); //开关-可以打折_1是0否
                    unset($sql_unit_tab[$i]["off_after_sale"]); //开关-拥有售后_1是0否
                    unset($sql_unit_tab[$i]["off_print_label"]); //开关-打印标签_1是0否
                    unset($sql_unit_tab[$i]["off_market_goods"]); //开关-专柜商品_1是0否
                    unset($sql_unit_tab[$i]["off_freebie"]); //开关-可为赠品_1是0否
                    foreach ($off_array as $Key => $value) {
                        if ($value == 1) {
                            $off_array[$Key] = true;
                        } else {
                            $off_array[$Key] = false;
                        }
                    }
                    ;
                    $sql_unit_tab[$i]["off_array"] = $off_array;
                }
                $sqldb["unit_tab"] = $sql_unit_tab;
            }
            //管理开关类-基本单位的包
            $off_array = [
                'off_expiration' => $sqldb["off_expiration"], //开关-管保质期_1是0否
                'off_stock' => $sqldb["off_stock"], //开关-管理库存_1是0否
                'off_deduct' => $sqldb["off_deduct"], //开关-开启提成_1是0否
                'off_discount' => $sqldb["off_discount"], //开关-可以打折_1是0否
                'off_after_sale' => $sqldb["off_after_sale"], //开关-拥有售后_1是0否
                'off_putaway_web' => $sqldb["off_putaway_web"], //开关-上架商城_1是0否
                'off_print_label' => $sqldb["off_print_label"], //开关-打印标签_1是0否
                'off_market_goods' => $sqldb["off_market_goods"], //开关-专柜商品_1是0否
                'off_freebie' => $sqldb["off_freebie"], //开关-可为赠品_1是0否
                'off_operation' => $sqldb["off_operation"], //开关-产生业务_1是0否

            ];
            foreach ($off_array as $Key => $value) {
                if ($value == 1) {
                    $off_array[$Key] = true;
                } else {
                    $off_array[$Key] = false;
                }
            }
            ;
            $sqldb["off_array"] = $off_array;
        }

        // unset($tem_data); //销毁
        // array_push()	将一个或多个元素插入数组的末尾（入栈）。
        // array_merge()	把一个或多个数组合并为一个数组。
        // array_merge_recursive()	递归地把一个或多个数组合并为一个数组。

        // $count = count($list);

        $apidb = [
            'code' => $code, //状态码
            'msg' => $msg, //状态信息
            // 'query' => $query, //请求参数
            'db' => $sqldb,
        ];
        return (json($apidb));
    }
    // 扫码模糊查询商品
    public function GoodsX()
    {
        $query = request()->param(); //请求参数

        if ($query['key'] == "barcode") {
            $sql_where = [
                ['barcode', 'like', '%' . $query['model']['barcode']],
            ];
        } elseif ($query['key'] == "in_code") {
            if ($query['model']['in_code'] == "") {
                $apidb = [
                    'code' => 203, //状态码
                    'msg' => "参数错误-空", //状态信息
                    'query' => $query, //请求参数
                    'db' => [],
                ];
                return (json($apidb));
            } else {
                $sql_where = [
                    ['code_x', 'like', '%' . $query['model']['in_code'] . "|%"], //字段值分隔符|例子：123|3323|kk23|3332|，前端要传|左边第一个起
                ];
            }
        } else {
            $apidb = [
                'code' => 202, //状态码
                'msg' => "参数错误-溢出", //状态信息
                'query' => $query, //请求参数
                'db' => [],
            ];
            return (json($apidb));
        }


        $sqldb = mysql::where($sql_where)->select();
        //设置需要输出的属性
        $sqldb = $sqldb->visible([
            //     'id', //主键
        ]);
        // 设置需要隐藏的输出属性
        $sqldb = $sqldb->hidden([
            //     'id', //主键
        ]);
        // 设置需要附加的输出属性
        $sqldb = $sqldb->append([
            'unit_tab', //附加字段-多包装单位商品包
            'array_prc', //附加字段-价格集
            'off_array', //附加字段-开关集
        ]);
        // 设置数据字段获取器
        $sqldb = $sqldb->withAttr('db_state', function ($value, $data) {
            $res = ["A" => '删除', "B" => '停用', "C" => '只销'];
            return ["val" => $value, "mp" => $res[$value], "txt" => "商品状态"];
        });
        $sqldb = $sqldb->withAttr('unit_pack', function ($value, $data) {
            $res = ["A" => '是', "B" => '否'];
            return ["val" => $value, "mp" => $res[$value], "txt" => "是否大单位"];
        });
        $sqldb = $sqldb->withAttr('time_new', function ($value, $data) {
            return ["val" => $value, "mp" => date('Y-m-d H:i:s', $value), "txt" => "创建时间"];
        });
        $sqldb = $sqldb->withAttr('time_up', function ($value, $data) {
            return ["val" => $value, "mp" => date('Y-m-d H:i:s', $value), "txt" => "修改时间"];
        });




        if ($sqldb->isEmpty()) {
            $isEmpty = true; //数据集为空
            $count = 0; //数据集行数
            $sqldb = []; //数据集
        } else {
            $isEmpty = false;
            $count = count($sqldb); //数据集行数
            $sqldb = $sqldb->toArray(); //数据集-以数组方式返回
        }
        ;


        if ($isEmpty) {
            $msg = '查询失败-对应商品不存在';
            $code = 201;
        } else {
            $msg = '查询成功';
            $code = 200;



            // if ($sql_unit_tab) {
            //     for ($i = 0; $i < count($sql_unit_tab); $i++) {

            //         $sql_unit_tab[$i]["barcode_data"] =  Db::table('ai_t_goods_barcode')->where('goods_dbid', $sql_unit_tab[$i]['dbid'])->select();

            //     }
            //     $sqldb["unit_tab"] = $sql_unit_tab;
            // }
        }
        // unset($tem_data); //销毁
        // array_push()	将一个或多个元素插入数组的末尾（入栈）。
        // array_merge()	把一个或多个数组合并为一个数组。
        // array_merge_recursive()	递归地把一个或多个数组合并为一个数组。
        $apidb = [
            'code' => $code, //状态码
            'msg' => $msg, //状态信息
            'query' => $query, //请求参数
            'count' => $count, //数据集行数
            'db' => $sqldb,
            'getLastSql' => db::getLastSql(),
        ];
        return (json($apidb));
    }

    // 列表
    public function List()
    {
        // 请求方式验证
        if (!request()->isPost()) {
            $apidb = ['code' => 201, 'msg' => "请求有误-不是Post方式!",];
            return json($apidb);
        }
        ;
        $query = request()->param(); //请求参数

        $limit = request()->param('limit', 10, 'trim'); //每页行数
        $current = request()->param('current', 1, 'trim'); //页码


        if ($query["additional"]["use"] == 1) {
            // additional.use启用额外查询方法-0否-1是。
            $SearchField = $query["additional"]["SearchField"]; //搜索字段
            $SearchOperator = $query["additional"]["SearchOperator"]; //搜索查询表达式
            $SearchaAtistop = $query["additional"]["SearchaAtistop"]; //搜索关键词SearchaAtistop:"[4,28,29,30,31,32,33,34]"

        } else {
            $SearchField = request()->param('SearchField', 'id', 'trim'); //搜索字段
            $SearchOperator = request()->param('SearchOperator', 'LIKE', 'trim'); //搜索查询表达式
            $SearchaAtistop = strval(request()->param('SearchaAtistop', "", 'trim')); //搜索关键词

        }

        $SearchaSort = request()->param('SearchaSort', 'DESC', 'trim'); //搜索排序方式ASE,DESC升降序
        $SearchaSortField = request()->param('SearchaSortField', 'id', 'trim'); //排序字段

        // strval();//转成字符串
        // echo gettype(); //打印变量的类型

        // 查询表达式
        if ($SearchOperator == 'LIKE') {
            $SearchaAtistop = '%' . $SearchaAtistop . '%';
        }
        ;
        if ($SearchField == 'time_new' || $SearchField == 'time_up') {
            if ($SearchOperator == '>' || $SearchOperator == '<') {
                $SearchaAtistop = strtotime(strval($SearchaAtistop));
                if ($SearchField == 'time_new') {
                    $SearchField = 'time_new';
                } else if ($SearchField == 'time_up') {
                    $SearchField = 'time_up';
                }
            }
        }

        $help = [
            "db" => [
                "total" => "数据总行数",
                "per_page" => "每页数量",
                "current_page" => "当前页码",
                "last_page" => "最后一页/总页数",
                "data" => "数据集",
                "SearchaAtistop" => $SearchaAtistop
            ]
        ];

        // $reset = Db::table('ai_t_goods_cls')->where('id', 1)->find();
        // $reset_json = json_decode($reset['ids'], true);
        // $sqldbs = mysql::where([['cls_id', 'in', $reset_json[0]]])->order("i", "desc")->select()->toArray(); //以数组方式返回


        $sqldb = mysql::where([
            [$SearchField, $SearchOperator, $SearchaAtistop],
            // ["cls_id", "IN", [1, 150, 129, 128, 123, 124, 154, 120, 121, 122]],
            ["unit_pack", "=", "B"], //只查小包单位



        ])
            ->order($SearchaSortField, $SearchaSort)
            ->paginate([ //[文档]https://www.kancloud.cn/manual/thinkphp6_0/1037638
                'list_rows' => $limit, // 每页数量
                'page' => $current, // 当前页
                // 'query' => $query,//url额外参数
            ]);
        // echo  udb::getLastSql();
        //设置允许输出字段
        $sqldb = $sqldb->visible([
            // 'id', //主键
            // 'dbid', //数据编号.唯一
            // 'db_state', //数据状态
            // 'time_new', //创建时间
            // 'time_up', //修改时间
            // 'name', //商品名称
            // 'cls_id', //商品分类id
            // 'state', //商品状态
            // 'sup_dbid', //主供货商数据编号




        ]);

        // foreach ($sqldb as $value) {
        //     dump($value->nickname);
        //     dump($value['nickname']);
        //     array_push($sqldb, $rs); //把每个数据集记录插入到数组
        // }
        $sqldb2 = $sqldb->toArray();

        //  当前页起始行
        if ($current > 1) {
            $index2 = $limit * $current - $limit + 1;
        } else {
            $index2 = 1;
        }


        // echo "当前总下标：" . $index2;
        for ($x = 0; $x < count($sqldb); $x++) {
            // $li_db[$x]['apitxtx'] = json_decode($li_db[$x]['apitxt'], true); //格式化插入
            // unset($li_db[$x]); //删除数组中的元素
            // ksort($li_db[$x]);//根据关联数组的键，对数组进行升序排列
            $sqldb2["data"][$x]['index1'] = $x + 1;
            $sqldb2["data"][$x]['index2'] = $index2;
            $index2++;

            $reset = null;
            $reset = Db::table('ai_t_goods_cls')->where('id', $sqldb2["data"][$x]['cls_id'])->find();

            $sqldb2["data"][$x]['cls_name'] = !empty ($reset["name"]) ? $reset["name"] : "!断链分类" . $sqldb2["data"][$x]['cls_id'];
            // dump($sqldb2["data"][$x]);
            // 
            // if ($sqldb2["data"][$x]["unit_pack"]!= "B") {
            // dump($sqldb2["data"][$x]["unit_pack"]);

            // 'unit_goods_dbid'=> 'string', //大单位商品数据编号(基本单位等于自己)
            // 'unit_pack'=> 'string',//是否大单位_A是B否
            // mysql::update(['unit_goods_dbid' => $sqldb2["data"][$x]["dbid"], 'unit_pack' => 'B'], ['dbid' => $sqldb2["data"][$x]["dbid"]], ['unit_goods_dbid','unit_pack']);
            // }





            // dump($sqldb2);
            // $sqldb[$x]['idb'] = $x++;
        }

        // dump($sqldb2);
        // dump(count($sqldb));
        // 遍历数据集
        // foreach ($sql_db as $rs) {
        // foreach($age as $x=>$x_value)
        // $rs['event_linkman_card_id']="身份证号码呀---保密了";
        // unset($rs['sys_indexer']);//销毁
        // array_push($tem_data, $rs); //把每个数据集记录插入到数组
        // }
        // unset($tem_data); //销毁

        // array_push()	将一个或多个元素插入数组的末尾（入栈）。
        // array_merge()	把一个或多个数组合并为一个数组。
        // array_merge_recursive()	递归地把一个或多个数组合并为一个数组。

        // $count = count($list);



        $apidb = [
            'api' => ["name" => "商品档案列表", "help" => $help], //API信息
            'code' => 200, //状态码
            'msg' => "查询成功！", //状态信息
            'query' => $query, //请求参数
            // '_header' => request()->header('token'),
            '_cache' => cache('userdb_' . request()->header('token')),
            'data' => $sqldb2,
            'aaaaaaaa' => db::getLastSql(), //输出上次执行的sql语句/也可以使用fetchSql方法直接返回当前的查询SQL而不执行，例如：echo User::fetchSql()->find(1);

        ];
        // unset($sqldb2); //销毁
        return (json($apidb));
    }
    
    // 制造SQL模糊查询码
    public function Make_CodeX()
    {

        $query = request()->param(); //请求参数
        $sqldb = mysql::where([
            ['state', '<>', 'b']
        ])->select();
        // 仅显示的字段
        $sqldb = $sqldb->visible([
            //    'dbid', //数据编号.唯一
            //    'unit', //单位
            //    'unit_pack', //是否大单位_A是B否
            // 'unit_size', //包装规格
            //    'name', //商品名称
            'barcode', //主条码
            //    'goods_no', //货号
            //    'auto_number', //自动编号
            //    'custom_code', //自编码
            //    'prc_in', //计算属性-进价
            //    'prc_vip', //计算属性-会员价
            //    'prc_sale', //计算属性-零售价
        ]);
        // 附加字段
        $sqldb = $sqldb->append([
            'code_x', //附加字段-SQL模糊查询码
        ]);
        $sqldb->toArray(); //以数组方式返回

        if ($sqldb) {

            // echo "当前总下标：" . $index2;
            for ($i = 0; $i < count($sqldb); $i++) {
                // 辅助条码
                $barcode_data = Db::table('ai_t_goods_barcode')->where([
                    ['goods_dbid', '=', $sqldb[$i]['dbid']]
                ])->field([
                            //    'goods_dbid', //父数据编号
                            'barcode', //主条码

                        ])->select();
                $barcode_data->toArray(); //以数组方式返回

                $barcode_db = $sqldb[$i]['barcode'] . '|' . $sqldb[$i]['goods_no'] . '|' . $sqldb[$i]['auto_number'] . '|' . $sqldb[$i]['custom_code'] . '|';
                // 遍历数据集
                foreach ($barcode_data as $x => $x_value) {
                    $barcode_db .= $x_value['barcode'] . '|';
                }
                $sqldb[$i]["code_x"] = $barcode_db;
                // 查找并更新
                $up_sql = mysql::where([
                    ['dbid', '=', $sqldb[$i]['dbid']]
                ])->find();

                $up_sql->code_x = $barcode_db;
                $up_sql->save();
            }
        }


        $apidb = [
            'code' => 200, //状态码
            'msg' => "制造SQL模糊查询码-成功！", //状态信息
            'count' => count($sqldb),
            'query' => $query, //请求参数
            // '_header' => request()->header('token'),
            // '_cache' => cache('userdb_' . request()->header('token')),
            // 'db' => $sqldb,
            // 'aaaaaaaa' => db::getLastSql(), //输出上次执行的sql语句/也可以使用fetchSql方法直接返回当前的查询SQL而不执行，例如：echo User::fetchSql()->find(1);

        ];
        // unset($sqldb2); //销毁
        return (json($apidb));
    }
    // 制造前台POS专用商品档案
    public function Make_GoodsPos()
    {
        $help = [
            "db字段说明" => [
                'dbid' => '数据编号.唯一',
                'unit' => '单位',
                'unit_pack' => '是否大单位_A是B否',
                'unit_goods_dbid' => '大单位父商品数据编号(基本单位等于自己)',
                // 'unit_size' => '包装规格',
                'name' => '商品名称',
                'barcode' => '主条码',
                'goods_no' => '货号',
                'auto_number' => '自动编号',
                'custom_code' => '自编码',
                // 'name_py' => '商品名称拼音编码',
                // 'brand' => '品牌',
                // 'producing_area' => '产地',
                // 'expiration' => '计算属性-保质期(天)',
                // 'unit_factor' => '计算属性-包装单位内装数',
                // 'gross_margin' => '计算属性-毛利率',
                // 'integration' => '计算属性-积分率',
                'prc_in' => '计算属性-进价',
                'prc_vip' => '计算属性-会员价',
                'prc_sale' => '计算属性-零售价',
            ]
        ];
        $query = request()->param(); //请求参数
        $sqldb = mysql::where([
            ['state', '<>', 'b']
        ])->order("i", "desc")->select();
        // 仅显示的字段
        $sqldb = $sqldb->visible([
            'dbid', //数据编号.唯一
            'unit', //单位
            'unit_pack', //是否大单位_A是B否
            'unit_goods_dbid', //大单位父商品数据编号(基本单位等于自己)
            // 'unit_size', //包装规格
            'name', //商品名称
            'barcode', //主条码
            'goods_no', //货号
            'auto_number', //自动编号
            'custom_code', //自编码
            // 'name_py', //商品名称拼音编码
            // 'brand', //品牌
            // 'producing_area', //产地
            // 'expiration', //计算属性-保质期(天)
            // 'unit_factor', //计算属性-包装单位内装数
            // 'gross_margin', //计算属性-毛利率
            // 'integration', //计算属性-积分率
            'prc_in', //计算属性-进价
            'prc_vip', //计算属性-会员价
            'prc_sale', //计算属性-零售价
            'code_x', //SQL模糊查询码
            'pos_show', //快捷商品显示
            // 'db_json', //静态JSON
        ]);
        // 附加字段
        $sqldb = $sqldb->append([
            // 'code_x', //附加字段-SQL模糊查询码
        ]);
        $sqldb->toArray(); //以数组方式返回

        if ($sqldb) {

            for ($i = 0; $i < count($sqldb); $i++) {
                // 商品档案POS专用格式
                $goods_pos = Db::table('ai_t_goods_pos')->where([
                    ['dbid', '=', $sqldb[$i]['dbid']]
                ])->find();
                if ($goods_pos) {
                    // 存在-修改
                    $data = [
                        'code_x' => $sqldb[$i]['code_x'], //SQL模糊查询码
                        'unit_pack' => $sqldb[$i]['unit_pack'], //是否大单位_A是B否
                        'unit_goods_dbid' => $sqldb[$i]['unit_goods_dbid'], //大单位父商品数据编号(基本单位等于自己)
                        'db_json' => json_encode($sqldb[$i], JSON_UNESCAPED_UNICODE), //静态JSON-不编码中文
                        // 'db_json' => json_encode($sqldb[$i]) , //静态JSON-编码中文
                        'barcode' => $sqldb[$i]['barcode'], //主条码
                        'pos_show' => $sqldb[$i]['pos_show'], //快捷商品显示

                        'time_up' => time(), //计算属性-修改时间
                    ];
                    $update_db = Db::name('ai_t_goods_pos')
                        ->where([
                            ['dbid', '=', $sqldb[$i]['dbid']]
                        ])->update($data); //更新

                } else {
                    // 不存在-增加
                    $data = [
                        'dbid' => $sqldb[$i]['dbid'], //数据编号.唯一
                        'unit_pack' => $sqldb[$i]['unit_pack'], //是否大单位_A是B否
                        'code_x' => $sqldb[$i]['code_x'], //SQL模糊查询码
                        'unit_goods_dbid' => $sqldb[$i]['dbid'], //大单位父商品数据编号(基本单位等于自己)
                        'db_json' => json_encode($sqldb[$i], JSON_UNESCAPED_UNICODE), //静态JSON-不编码中文
                        // 'db_json' => json_encode($sqldb[$i]) , //静态JSON-编码中文
                        'barcode' => $sqldb[$i]['barcode'], //主条码
                        'pos_show' => $sqldb[$i]['pos_show'], //快捷商品显示

                        'time_new' => time(), //计算属性-创建时间

                    ];
                    $insert_db = Db::name('ai_t_goods_pos')->strict(false)->insert($data); //新建

                }
            }
        }


        $apidb = [
            // 'apiinfo' => ["name" => "制造前台POS专用商品档案", "help" => $help], //API信息
            'code' => 200, //状态码
            'time' => time(),
            'msg' => "制造前台POS专用商品档案-成功！", //状态信息
            'count' => count($sqldb),
            // 'query' => $query, //请求参数
            // '_header' => request()->header('token'),
            // '_cache' => cache('userdb_' . request()->header('token')),
            // 'db' => $sqldb,
            // 'aaaaaaaa' => db::getLastSql(), //输出上次执行的sql语句/也可以使用fetchSql方法直接返回当前的查询SQL而不执行，例如：echo User::fetchSql()->find(1);

        ];
        return (json($apidb));
    }
}
